import { Rule } from "./types";

export const Pep8NamingRuleList: Rule[] = [
    {
        code: "N801",
        name: "invalid-class-name",
        descEn: "Class name {name} should use CapWords convention",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N802",
        name: "invalid-function-name",
        descEn: "Function name {name} should be lowercase",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N803",
        name: "invalid-argument-name",
        descEn: "Argument name {name} should be lowercase",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N804",
        name: "invalid-first-argument-name-for-class-method",
        descEn: "First argument of a class method should be named cls",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N805",
        name: "invalid-first-argument-name-for-method",
        descEn: "First argument of a method should be named self",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N806",
        name: "non-lowercase-variable-in-function",
        descEn: "Variable {name} in function should be lowercase",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N807",
        name: "dunder-function-name",
        descEn: "Function name should not start and end with __",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N811",
        name: "constant-imported-as-non-constant",
        descEn: "Constant {name} imported as non-constant {asname}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N812",
        name: "lowercase-imported-as-non-lowercase",
        descEn: "Lowercase {name} imported as non-lowercase {asname}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N813",
        name: "camelcase-imported-as-lowercase",
        descEn: "Camelcase {name} imported as lowercase {asname}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N814",
        name: "camelcase-imported-as-constant",
        descEn: "Camelcase {name} imported as constant {asname}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N815",
        name: "mixed-case-variable-in-class-scope",
        descEn: "Variable {name} in class scope should not be mixedCase",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N816",
        name: "mixed-case-variable-in-global-scope",
        descEn: "Variable {name} in global scope should not be mixedCase",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N817",
        name: "camelcase-imported-as-acronym",
        descEn: "CamelCase {name} imported as acronym {asname}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N818",
        name: "error-suffix-on-exception-name",
        descEn: "Exception name {name} should be named with an Error suffix",
        descCn: "",
        autoFix: false,
    },
    {
        code: "N999",
        name: "invalid-module-name",
        descEn: "",
        descCn: "Invalid module name: '{name}'",
        autoFix: false,
    },
];